home *** CD-ROM | disk | FTP | other *** search
/ PC Elektro 3 / PC-Elektro-3-cd1.bin / KBan 2.0 / KBANSRC.LZH / SRC / PROG / CMD / EDDIVIDE.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-26  |  1.6 KB  |  63 lines

  1. /*
  2.  * the class EDIT_DIVIDE
  3.  * Copyright (C) 1996, 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
  4.  */
  5.  
  6. #include "../stdafx.h"
  7.  
  8. #include "../common/bool.h"
  9.  
  10. #include "eddivide.h"
  11.  
  12. STAGE* EDIT_DIVIDE::init_new(KBAN_INFO& info, KBAN_DRAW& draw)
  13. {
  14.   return new STAGE_SELECT;
  15. }
  16.  
  17. const char* EDIT_DIVIDE::get_name(void)
  18. {
  19.   return "Edit:Divide";
  20. }
  21.  
  22. STAGE* EDIT_DIVIDE::STAGE_SELECT::mouse_left_down(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
  23. {
  24.   PRIMITIVE& primitive = info.kban_data().primitive();
  25.   LINE_LIST& line_list = primitive.layer(info.active_layer().get()).line_list();
  26.   XY ac;
  27.   GRID& grid = info.grid();
  28.   grid.xy_pc2ac_with_snap_off(pc, ac);
  29.  
  30.   XYT eps = grid.distance_pc2ac(20);
  31.   LINE_ELEMENT* target = line_list.search(eps, ac);
  32.   STAGE* ret;
  33.   if(target != NULL) {
  34.     ret = new STAGE_DIVIDE(target, info.active_layer().get());
  35.   } else {
  36.     ret = this;
  37.   }
  38.  
  39.   return ret;
  40. }
  41.  
  42. STAGE* EDIT_DIVIDE::STAGE_SELECT::mouse_right_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
  43. {
  44.   return NULL;
  45. }
  46.  
  47. EDIT_DIVIDE::STAGE_DIVIDE::STAGE_DIVIDE(LINE_ELEMENT* target, uint layer)
  48.   : STAGE_DIVIDE_CORE(target, layer)
  49. {
  50. }
  51.  
  52. STAGE* EDIT_DIVIDE::STAGE_DIVIDE::mouse_left_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
  53. {
  54.   STAGE_DIVIDE_CORE::mouse_left_up(info, draw, pc, nFlags);
  55.   return new STAGE_SELECT;
  56. }
  57.  
  58. STAGE* EDIT_DIVIDE::STAGE_DIVIDE::mouse_right_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
  59. {
  60.   STAGE_DIVIDE_CORE::mouse_right_up(info, draw, pc, nFlags);
  61.   return new STAGE_SELECT;
  62. }
  63.